The present invention relates to a method and an electronic apparatus for positioning a cursor on a display in response to a user input on a pointing device, where the user input represents a desired cursor movement on the display.
A wide variety of pointing devices have been proposed and used to implement user control of a cursor on a graphical display screen. The simplest form of pointing device is a set of navigation keys on a keypad, normally implemented as xe2x80x9carrow keysxe2x80x9d, which represent discrete cursor movements upwards, downwards, to the left and to the right on the screen. The present invention is not particularly related to such discrete pointing devices.
The other main class of pointing devices is continuous (analog) devices, where the user controls the cursor position in a continuous manner by varying a physical input to the pointing device. A first subclass of continuous pointing devices comprises positional (movable) joysticks, mouse controls and trackball controls. Here, the user physically moves the pointing device in two dimensions, and the movement represents a desired cursor movement.
A second subclass includes capacitive touch pads and capacitive, thermal or optical fingerprint detectors, where the user moves his/her finger in relation to a stationary surface so as to command the desired cursor movement on the display. A third subclass involves isometric joysticks, where the user controls the position or speed of the cursor by applying a certain amount of force to the joystick in different directions.
The various pointing devices listed above have a similar operating principle in that they will convert the physical user input to analog signals representing the commanded movement in rectilinear space (rectangular x and y coordinates). Throughout this document, a xe2x80x9cpointing devicexe2x80x9d will refer to any device capable of converting a physical user input to signals representing a desired cursor movement on a display.
Pointing devices are used in many different applications for controlling a cursor on a display of an electronic apparatus. In some applications, e.g. when an ordinary mouse or trackball control is used for controlling a graphical user interface on a personal computer, the user normally has unrestricted space and a solid surface to move the pointing device on. Consequently, the output signals (x and y coordinates) from the pointing device will normally be of good quality with low noise and a high level of consistency.
In other applications, on the other hand, a miniaturized pointing device is used for small-sized portable equipment, such as a hand-held computer, a portable digital assistant, a mobile telephone, a wireless electronic payment device, etc. In these situations, the environment cannot be expected to be as stable and troublefree as in the above case. On the contrary, the output signals from the pointing device are likely to be noisy and contain spurious or rapidly varying information, due to trembling of the user""s hand or finger, unexpected external influence, rapid and temporary variations in speed or direction in the user input, etc.
Consequently, particularly for portable and miniaturized equipment, it may be difficult for the user to provide an accurate input on the pointing device, which obviously may affect the accuracy of the cursor navigation undesiredly. Therefore, it is necessary to provide support for effective removal of noise in the output signal from the pointing device and also to provide arrangements which will facilitate positioning of the cursor and provide a resulting smooth and accurate movement on the display.
U.S. Pat. No. 5,661,502 relates to a self-adjusting digital filter for smoothing computer mouse movements. The speed of the mouse movement is calculated from the rectangular x and y coordinates from the mouse. A user-selectable inertial constant is applied to the calculated mouse movement so as to provide corrected mouse position data. Preferably, the inertial constant depends on the speed of the mouse movement. Consequently, the amount of filtering applied will be different for slow mouse movements than for faster movements, and the amount of correction of the mouse track will differ correspondingly.
U.S. Pat. No. 5,764,219 discloses a force-type joystick, where the amount of force applied to the joystick controls the speed of the cursor on the display. In this document it is observed that conventional force to velocity mapping in force-type joysticks involves transfer functions, according to which the cursor velocity always increases as the input force increases. This generally makes a conventional force joystick frustrating to use, since when the joystick is actuated to its maximum extent, the cursor tends to move across the display at a speed, which is faster than the eye can follow. In turn, this often causes the user to overshoot the target point on the display, wherein the user will have to make additional joystick corrections in order to recover from the overshoot.
According to U.S. Pat. No. 5,764,219, the situation is improved by providing a predefined non-linear transfer function between input force and output cursor velocity. More specifically, a parabolic sigmoidal transfer function is used, which includes a cut-off plateau in cursor velocity for high input forces, so that the maximum cursor velocity will be limited to a velocity, which can be comfortably tracked by the human eye on the display.
According to one embodiment (which is disclosed in FIG. 6 and is described in column 5, lines 9-44 of U.S. Pat. No. 5,764,219), the aforesaid non-linear transfer function is applied only to the speed of the cursor movement but not to the direction of the cursor movement. This is obtained by the provision of a converter for converting from rectangular input coordinates (x and y signals) to polar coordinates of magnitude and direction (argument). Then, the non-linear transfer function is applied only to the magnitude coordinate but not to the direction coordinate. It is described that this arrangement will achieve a desired upper limitation of cursor speed, while preserving the direction of the cursor movement, so that the latter will correspond directly to the user input without any filtering thereof.
FIG. 5 of the enclosed drawings contains a schematic block diagram of the aforesaid embodiment of U.S. Pat. No. 5,764,219. Rectangular input coordinates x and y are submitted by the user through a pointing device 80. The input is preprocessed in a filter 82 and is then converted to polar coordinates xcfx81 and xcex8 in a polar converter 84. The non-linear gain is provided to the magnitude xcfx81 by an amplifier 86, but the direction xcex8 is not processed. A rectangular converter 88 converts xcfx81 and xcex8 back to rectilinear space, and the result of the conversion is supplied to a display drives 90 and a display 92.
The present inventor has reached an insight that in some applications, particularly for portable or miniaturized equipment, the direction of the movement commanded through the pointing device is more sensitive to noise than the magnitude or speed of the movement. A high level of noise or a large amount of rapid unintentional directional variations will jeopardize a steady cursor course on the display and will make it difficult to navigate properly between different targets on the display. Presently, it appears that this problem is particularly pronounced for pointing devices of subclasses two and three above, i.e. force-type joysticks, touch pads, fingerprint detectors, etc.
It is an object of the present invention to provide improved cursor control on a display by means of a pointing device, particularly as regards portable or miniaturized equipment, in a situation where the output signals from the pointing device may be expected to contain a considerable level of noise and unintentional rapid variations.
In particular the present invention seeks to reduce the time required for moving the cursor from a first position to a second position on the display. It also aims at reducing the rate of unsuccessful cursor movements, i.e. when the cursor does not hit the intended target on the screen. Moreover, the invention seeks to improve the perceived control of the cursor, as experienced by the user.
The above objects have been achieved by converting the user input received through the pointing device from rectangular coordinates to polar coordinates of magnitude and argument, and by processing the magnitude coordinate so as to control the speed of movement of the cursor on the display, as well as separately processing the argument coordinate so as to suppress rapid angular variations in the movement of the cursor on the display.
Preferably, the argument coordinate is processed by heavy low pass filtering so as to provide inertia to the directional component of the user input, thereby preventing rapid unintentional variations in direction for the cursor on the display and, thus, establishing a steady and user-friendly cursor course.
Even more preferably, the argument coordinate is subjected to a non-linear filter having the following three operating modes:
a startup mode where low pass filtering with increasing time constant is applied, so as to provide increasing inertia to the argument component,
a steady mode where low pass filtering with an invariant long time constant is applied, and
a reset mode where the inertia is removed and the filter may be reset to its startup mode.
Still more preferably, the processing of the argument coordinate is obtained by a digital low pass filter having a variable filter length and a plurality of filter coefficients, which are chosen so that the degree of low pass filtering applied to the argument coordinate is stronger for a longer filter length than for a shorter filter length, and wherein the filter length is varied in response to whether a certain predetermined condition is reached. This condition may preferably be a reset of the filter length after a certain time period of inactivity (timeout). The degree of low pass filtering may also be varied depending on the value of the magnitude component. A low value of the magnitude component corresponds to a low speed of movement, and in this case the degree of low pass filtering may be small or even zero. On the other hand, a large value of the magnitude component corresponds to a rapid cursor movement, and consequently a higher degree of low pass filtering is applied so as to obtain a steady cursor course on the display.
The above objects are also achieved through a method and an apparatus according to the attached independent claims. Other objects, features and advantages of the present invention will appear from the following detailed disclosure of a preferred embodiment, from the drawings as well as from the dependent claims.
It should be emphasized that the term xe2x80x9ccomprises/comprisingxe2x80x9d when used in this specification is taken to specify the presence of stated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components or groups thereof.